home *** CD-ROM | disk | FTP | other *** search
/ Inside Mac Games Volume 4 #9 / IMG 40 Sep 1996.iso / More Goodies / More for Your Game / Doom II / DFLE Users Folder / DFUSE Tutorials / DFTUTOR2.TXT < prev    next >
Text File  |  1996-02-05  |  30KB  |  761 lines

  1. DFUSE Tutorial - Part 2
  2.  
  3. By: Ben & Pat McBride  
  4. July 16, 1995
  5. E-mail us at --- Compuserve: 74454,1421  
  6. Internet: 74454.1421@compuserve.com
  7.  
  8. ===========================================================================
  9. What you will learn in Part II:   Subsectors, Stairs, Object Altitudes,
  10. Top and Bottom Textures, Introduction to .INF, Lifts, Switches,
  11. Key Doors, Layers, 2 Ways to Test a Level, and Helpful Hints.
  12. ============================================================================
  13.  
  14. Hello! Welcome to the DFUSE Tutorial - Part 2! 
  15.  
  16. *** You DO NOT need ANY Doom experience to use this tutorial! ***
  17.  
  18. We are assuming that you already have gotten DFUSE to run properly. If you are 
  19. having trouble getting DFUSE to work, I suggest you read the README file. We
  20. are also assuming that you know everything from Part 1 of the tutorial.
  21.  
  22. The way this tutorial works is like this: (***NOTE*** this is different then
  23. the first tutorial!!!) you print out the tutorial, read the tutorial,  
  24. load up DFUSE, then try what you learned. From part 2 on, we will no longer 
  25. tell you *exactly* what to do, but we'll explain *how* to do things. For
  26. example, in part 1 we would tell you to put a sector in a certain place etc.,
  27. but in this one we will explain to you how to do certain things, and you
  28. can use what you learn in your own level.   
  29.  
  30. Also, when we talk about 'lines' in this tutorial, it means the same thing
  31. as 'walls'.  In the DFUSE docs, they are called 'walls', but we like to
  32. call them 'lines'.
  33.  
  34. If you don't have a printer and would like to be able to view this tutorial
  35. while in DFUSE, I suggest you rename the file df_specs.doc as specs.doc (in 
  36. the c:\dark\dfuse\docs dir), and then copy this tutorial to /docs/ and rename 
  37. the tutorial df_specs.doc. This will allow you to view the tutorial by 
  38. pressing <Alt + F1> in LEVMAP.
  39.  
  40. OOPS! --- We made an error in our last tutorial. We said that there was no
  41. way to edit vertices, but there is.  Vertices can be edited by
  42. pressing enter, and you can change the coordinates to fine tune
  43. their positions. Sorry for the mistake, and thanks to the people 
  44. who found this error.
  45.  
  46. This tutorial comes with an example level, which contains most of the stuff
  47. you'll learn in this tutorial. See the file EXAMPLE1.TXT for more info.
  48.  
  49. Ok, here we go!
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64. ================
  65. Subsectors
  66. ================
  67. One of the most important things you'll need to know how to do when making a 
  68. level is how to make Subsectors.  A subsector is a sector inside of another
  69. sector, like this:  
  70.  
  71. X-------------------X                  
  72. |  1                |        1 = outside sector
  73. |      X-----X      |        2 = subsector
  74. |      |  2  |      |
  75. |      |     |      | 
  76. |      X-----X      |
  77. |                   |             Diagram 2-1
  78. X-------------------X
  79.  
  80.  
  81. Now say we wanted to make sector 2 a platform a little bit higher than the
  82. floor that the player could walk on. Here's how to do it: Highlight sector 1,
  83. postion the mouse cursor in the center of sector 1, and push <Ctl + K>.
  84. Push F2 and it will create a 4 sided sector inside of sector 1.  The <Ctl +K>
  85. feature is *supposed* to automatically adjoin the lines of sector 2 for you,
  86. but it hardly ever works, so you'll probably have to adjoin the lines your-
  87. self. To do this you have to separate all the vertices (by moving them off of
  88. the other ones), then use <alt + right click> to put them all back together
  89. again, then adjoin the lines by highlighting each line and pushing "A".
  90.  
  91. Remember, everytime you want to make a sector inside of another sector, you
  92. *have* to use <Ctl + K>.
  93.  
  94. If all the lines adjoined properly, you should be able to highlight sector 2
  95. seperately, and when you highlight sector 1, sector 2 should also be
  96. highlighted (because the outer lines are part of sector 1). The player can
  97. now walk through sector 2 because the lines are adjoined.
  98.  
  99. Making the sector a platform is easy: just edit sector 2 and change the floor
  100. altitude ("FAl:") to 8.  This will make the floor height of sector 2 "8"  
  101. higher than the floor around it (which is 0).  If you wanted to change the
  102. texture of the sides of the platform, you would change the outer lines Bottom
  103. texture, because bottom texture is the texture "below the floor".
  104.  
  105. If you wanted to make the walls of sector 2 solid walls instead of walk 
  106. through, you would have used <Alt + K>.  This does the same thing as <Ctl + K> 
  107. except that it doesn't adjoin the lines, thus making walls. Try it out.  
  108. Note that if you used <Alt + K>, sector 2 would not be a highlightable sector.
  109.  
  110. =============
  111. Stairs
  112. =============
  113.  
  114. Making stairs is actually quite simple. All you have to do is change the floor
  115. height of each sector, like this:
  116.  
  117.  
  118. Each number represents the sector's Floor Altitude (FAl):
  119. _______________
  120. |               |___ ___ ___
  121. |     0         | 3 | 6 | 9 |                       Diagram 2-2
  122. |               |___|___|___|  etc.....
  123. |_______________|
  124.  
  125. These stairs would go UP, since each sector is 3 higher than the one before
  126. it. The Extrude function (highlight line and push "E") is *VERY* useful in
  127. making stairs! If you don't know how to use it, learn now.
  128.  
  129. To make staris go DOWN, all you would have to do is make each sector's floor 
  130. altitude lower than the one before it (i.e.  0...-3....-6...-9...etc...).
  131.  
  132. You don't have to make the stairs 3 high each. Stairs lower than 3 are fine,
  133. but if you make them 4 or more the player will have to jump to get up them.
  134.  
  135. If you wanted to make a REALLY LONG staircase, figuring out each stair's 
  136. height could get tedious. So, DFUSE has some shortcuts that can save you the 
  137. time of doing this! They are: 
  138.  
  139. Distribute Floor Altitudes ------------ <Alt + F8>
  140. Distribute Ceiling Altitudes ---------- <Ctl + F8>
  141. Distribute Floor & Ceiling Altitudes --- <F8>
  142.  
  143. Here's how to use them:
  144. Say you had a sector with floor height 0 and ceiling height 16, and you 
  145. wanted to make stairs going up to a sector with floor height 15 and ceiling
  146. height 31.  It would look like this:
  147.  
  148. _______________                 ____________
  149. |               |___ ___ ___ ___|            |
  150. | FAl:  0       |   |   |   |   |   FAl:15   |         Diagram 2-3
  151. | CAl:  16      |___|___|___|___|   CAl:31   |
  152. |_______________|               |____________|
  153. Sector A                        Sector B
  154.  
  155. Instead of figuring out what each stair's floor altitude should be, you would
  156. do this --- Multiselect all the sectors (shift + click), starting with
  157. sector A and ending with the sector B. Now push <F8>, and it distributes  
  158. the floor between 0 and 15 and the ceiling between 16 and 31.  
  159. It will now look like this:
  160.  
  161. 16         19  22  25  28       31          <- Ceiling Heights  
  162. _______________                 ____________
  163. |               |___ ___ ___ ___|            |
  164. |     0         | 3 | 6 | 9 |12 |     15     |    <- Floor Heights
  165. |               |___|___|___|___|            |
  166. |_______________|               |____________|
  167. sector A                       sector B            Diagram 2-4
  168.  
  169. Voila! You now have a staircase! The reason we distributed the ceiling heights
  170. also is because sector A has (in this example) a ceiling height of 16, and
  171. sector B a ceiling height of 31.  If we didn't distribute the ceiling heights,
  172. then their wouldn't be enough room between the floor and ceiling on some
  173. of the stairs for the player to stand. Here's a side view picture of the
  174. above diagram in case your confused:                                     
  175. 31
  176. 28  _________________
  177. 25  _____|                 |
  178. 22   _____|     |  Sector B       |
  179. 19   _____|     |     |                 |
  180. ceiling   16    _____|     |     |     |_________________|
  181. _________________|     |     |     |_____|
  182. |                 |     |     |_____|             15
  183. |  Sector A       |     |_____|        12
  184. |                 |_____|        9
  185. |_________________|        6
  186. floor    0       3                                 Diagram 2-5
  187.  
  188.  
  189. If the ceiling heights of sector A and sector B were both 31, then there
  190. would be no need to distribute the ceiling heights, just the floor heights,
  191. so you would use <Alt + F8>. 
  192.  
  193. =================
  194. Object Altitudes
  195. =================
  196. Now that you know about floor and ceiling altitudes, I'll tell you about
  197. this.  Say you wanted to put an object (like a storm trooper) in sector B
  198. in the above level.  You would copy a storm trooper from sector A...but
  199. then the storm trooper would still be at height 0, and in a sector with
  200. floor height 15 (like sector B), the storm trooper would be underground!
  201. The way to fix this is to change the "Y" (up and down) coordinate of the 
  202. storm trooper. If you edit the storm trooper and change "Y" to 15, then 
  203. the storm trooper will be on the floor of sector B, just like he's supposed
  204. to be, and ready to fry any rebel scum that enters the area.
  205.  
  206. It is REALLY easy to forget to change the Y coordinate when placing objects
  207. in your level, so if you're testing out your level and some objects you
  208. placed are not there, its probably because you forgot to change the Y 
  209. coordinate, so the objects are either underground or up in the air.
  210.  
  211. While I'm on the subject, I ought to mention that if you want to put an
  212. object on the ceiling (like a hanging chain or something), then you
  213. have to change the "Y" of the object to the same number as the ceiling height. 
  214. DFUSE does not automatically place ceiling objects on the ceiling, so you have
  215. to do it yourself.
  216.  
  217. ==========================
  218. Textures - An Explination
  219. ==========================
  220.  
  221. Before we get into learning INF files, you gotta learn what Top, Middle,
  222. and Bottom textures are so you know where to put your textures. Here's a
  223. diagram showing a small alcove built into a wall. In the alcove, the floor
  224. altitude (FAl) is 4 and the ceiling altitude (CAl) is 12. The sector next to
  225. the alcove has a floor altitude of 0 and a ceiling altitude of 16.
  226.  
  227. Note that the following diagram is not a top view, but a first person
  228. perspective:
  229.  
  230. wall 1     wall 2      wall 3
  231. __________________________________
  232. |         | Top Tex.  |          |
  233. |         |           |          |
  234. |         |  CAl = 12 |          |
  235. |         |___________|          |      Diagram 2-6
  236. |  Mid    |           |    Mid   |
  237. | Texture | (Alcove)  |  Texture |
  238. |         |           |          |
  239. |         |___________|          |
  240. |         |  FAL = 4  |          |
  241. |         |           |          |
  242. |         | Bot Tex.  |          |
  243. |_________|___________|__________|
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255. The diagram below is a top view of the sector and the alcove in diagram 2-6. 
  256. By looking at this diagram, it might be a little easier to understand                          
  257. diagram 2-6.
  258.  
  259. _______________________ 
  260. |                     |
  261. |          wall 1  -> |
  262. |                     |----------
  263. | Normal              | Alcove  |      Diagram 2-7
  264. | Sector   wall 2  -> |         |
  265. |                     | FAl: 4  |
  266. |                     | CAl: 12 | 
  267. | FAl: 0              |----------
  268. | CAl: 16  wall 3  -> |
  269. |_____________________|
  270.  
  271.  
  272. All this may sound confusing, but take a little time and try to under-
  273. stand it. If you still don't get it, you can look at it later after you're
  274. more experienced with DFUSE and DF.
  275.  
  276. ============================================================================
  277. Ok, now its time to get into what everyone has been waiting for!  Go grab a
  278. soda and get prepared for.... THE .INF FILE!!!!!!
  279.  
  280. Many people have never even tried to make a DF level because they heard that
  281. you have to PROGRAM, a word which frightens some people. But trust me, folks,
  282. you don't really have to be a programmer to understand the .inf file. It's
  283. a pretty simple programming language.  You don't even have to memorize
  284. anything, because it will all be here in the tutorials. And even if you
  285. don't understand how the programming language works, you can still make .inf
  286. stuff by copying it from the tutorial.
  287.  
  288. The .INF file is used to make switches, elevators, conveyor belts, moving
  289. sectors (also known as 'morphing' sectors), key doors, and stuff like that.
  290. In this tutorial we will be introducing the .inf file to you, and we'll even
  291. show you how to make some stuff, like lifts and swithces.
  292.  
  293. Be sure to check out the .INF file in our EXAMPLE1 level included with this
  294. tutorial!
  295.  
  296. ===========================
  297. .INF File - An Introduction
  298. ===========================
  299.  
  300. Here's the basic structure of the .INF file (our comments are in []):
  301.  
  302.  
  303. INF 1.0     [Version number, this will always be the same]
  304.  
  305. LEVELNAME SECBASE   [The name of the level the .inf is for]
  306.  
  307. items 1    [The number of items in the .inf file. Must be updated when you
  308. add more items!!!]
  309.  
  310. item: [sector or line]     name: [the name of the sector]  num: [used for lines only!]
  311. seq                 [the start of the sequence]
  312. class: elevator move_floor   [class of the sector/line (see list)]
  313. stop: 1 hold               [stops are the main part of the sequence, more
  314. stop: 2 hold                on these later]
  315. speed: 0                [speed of the sector] 
  316. seqend               [the end of the sequence]
  317.  
  318.  
  319. None of that probably makes sense to you right now, but you'll understand, so
  320. just be patient.
  321.  
  322.  
  323. Here is a list of the CLASSes and what each one means:
  324. **NOTE*** In the inf file, the word 'elevator' does NOT mean an elevator that
  325. moves up and down, like you would think. EVERY class starts with
  326. the word 'elevator', so just don't pay attention to it.
  327.  
  328. INF SECTOR CLASSES
  329.  
  330. elevator basic         
  331. elevator change_light       [changes the light level of the sector (Amb)
  332. used for making the lights flash on & off]
  333. elevator change_wall_light  [changes the light level of a wall (Lig)]
  334. elevator door              [a normal door]
  335. elevator door_mid          [a door that has two parts, the top part goes
  336. up and the bottom part goes down when you 
  337. open the door]
  338. elevator inv              [Not sure what this one is...anybody know?]
  339. elevator morph_move1    [moving sector, but player will not move with sector]
  340. elevator morph_move2    [moving sector, but player WILL move with sector]
  341. elevator morph_spin1    [spinning sector, player doesn't move with sector]
  342. elevator morph_spin2    [spinning sector, player DOES move with sector]
  343. elevator move_ceiling   [lowers or raises ceiling]
  344. elevator move_fc        [moves both ceiling and floor (must use @ stops!)]
  345. elevator move_floor     [lowers or raises floor]
  346. elevator rotate_wall    
  347. elevator scroll_ceiling   [scrolls the ceiling texture]
  348. elevator scroll_floor     [scrolls the floor texture (you move with it -
  349. conveyour belts, water etc.) 
  350. elevator scroll_wall       [scrolls the wall texture]
  351. elevator teleporter chute  [teleports player to another layer]
  352.  
  353.  
  354. The list above is a list of ALL the .inf sector classes. The only ones we'll 
  355. use in this tutorial are elevator move_floor and elevator move_ceiling. 
  356.  
  357. ===============
  358. Making an Lift
  359. ===============
  360. I think the best way to explain how the .inf works is to show you how
  361. to make a lift, so here goes...
  362.  
  363.  
  364. This is what I'll be showing you how to make:                             
  365.  
  366. 'lift'  
  367. ________________  \/  ______________
  368. |                |    |              |
  369. |                |____|              |
  370. |  'start_point' |    |  'end_point' |         Diagram 2-8
  371. |                |____|              |
  372. |                |    |              |
  373. |________________|    |______________|
  374. FAl: 0          /\          FAl: 16
  375. CAl: 16        FAl: 0       CAl: 32
  376. CAl: 32
  377.  
  378. The lift in the middle of the 2 sectors will start at 0 floor height, and when
  379. you step on it, it will bring the player up to floor height 16, and the player
  380. will then be able to walk into sector 'end_point'.
  381.  
  382. After you have constructed and named these sectors, you will have to edit the 
  383. .inf file to make the sector 'lift' act like a lift. Pushing "I" in LEVMAP 
  384. will edit the .inf file, but for me it usually says "out of memory", so 
  385. you can also edit the .inf file by exiting LEVMAP and pushing "I".  If this
  386. is a new level, the .inf will have only one item in it, and the "items" line
  387. should read "items 1". To make the lift we will have to add another item,
  388. so change "items 1" to "items 2". If you don't update the "items" line every time
  389. you make a new item it will cause problems, so in the future make sure 
  390. you remember to UPDATE THE NUMBER OF ITEMS!!!!
  391.  
  392. Here is what you would add (right under the first item) to the .inf to make 
  393. sector 'lift' do what we want:
  394.  
  395.  
  396. item: sector             name: lift   
  397. seq
  398. class: elevator move_floor
  399. event_mask: 52
  400. stop: 0 hold
  401. stop: 16 hold
  402. speed: 10
  403. seqend
  404.  
  405.  
  406. Now I'll give you a line by line explaination of this so you'll understand
  407. what it means:                                                        
  408.  
  409. "item: sector" 
  410. Since 'lift' is a sector, we would put item: sector. Switches, for example,
  411. would use item: line because a switch is a line, not a sector.
  412.  
  413. "name: lift"
  414. The name of the sector we want to affect. The name of the sector is 'lift',
  415. so we put name: lift.
  416.  
  417. "seq"
  418. This marks the start of the sequence of commands we will give to 'lift'. 
  419.  
  420. "class: elevator move_floor"
  421. This tells DF that the commands we give to 'lift' will be to make the floor
  422. move. For a list of classes, see INF SECTOR CLASSES above.
  423.  
  424. "event_mask: 52"
  425. The event_mask tells DF how the sector/line will be activated. Here is the 
  426. list of event_mask values:
  427.  
  428. EVENT_MASK VALUES:
  429.  
  430. 1   WALK FROM INSIDE      (line trigger)
  431. 2   WALK FROM OUTSIDE     (line trigger)
  432. 4   ENTER SECTOR          (sector trigger)
  433. 8   LEAVE SECTOR          (sector trigger)
  434. 16  NUDGE FROM INSIDE     (sector / line)
  435. 32  NUDGE FROM OUTSIDE    (sector / line)
  436. 256 FIRE (shoot)          (line trigger with entity_mask: *)
  437.  
  438.  
  439. In this case, we are using "event_mask: 52.  This means that our lift will
  440. be activated in three different ways:
  441.  
  442. 1. When the player enters (steps on) the sector (4)
  443. 2. When the player pushes the spacebar (nudge) when inside the sector (16)
  444. 3. When the player nudges the sector from outside of the sector (32)
  445.  
  446. The reason we put "event_mask: 52" is because 4 + 16 + 32 = 52.
  447.  
  448. "stop: 0 hold"
  449. Stops are what are used to command the sector/line. This stop tells sector 
  450. 'lift' to go to the floor height (because we're using elevator move_floor)
  451. of 0 and hold there until the sector is activated.
  452.  
  453. "stop: 16 hold"
  454. This stop tells the lift to move up to floor height 16, and hold there until
  455. activated.
  456.  
  457. "speed: 10"
  458. This tells 'lift' to move up and down at speed 10. A higher number would
  459. make the lift move faster, a lower number slower.
  460.  
  461. "seqend"
  462. This marks the end of the sequence of commands.
  463.  
  464. And that's all there is to it!  Now save the .inf file and go back into
  465. LEVMAP. The sector 'lift' should now be yellow if you did the .inf correctly.
  466. When you highlight the sector 'lift' it should say "elevator move_floor".
  467. Try out the lift and see how it works!!!
  468.  
  469. If you try out the lift you will probably notice that it doesn't 'move' 
  470. like the lifts in LA's levels.  To fix this problem all you have to do
  471. is anchor all the textures by setting the flag 'anchor wall texture' on the 
  472. lines that make up the lift. Remember, whenever you want to make something 
  473. move up or down, you have to anchor the textures.
  474.  
  475. ==================
  476. Making a Switch
  477. ==================
  478. To show you how to make a switch, we'll make a switch that activates the
  479. lift from the above section "Making a Lift" (diagram 2-8).
  480.  
  481. Before we do anything in the .inf, we have to put the switch on a wall.
  482. Highlight any of the lines (except the line that's part of the lift) in
  483. sector 'start_point'. Push enter, highlight "SGN:", and push enter again.
  484. This will let you add a "sign" to the wall. What this will do is 'paste'
  485. the texture you select (usually a switch or poster texture) on the wall
  486. texture. Note that this is much better than Doom, where only certain wall
  487. textures had buttons on them, because now you can put any switch on any
  488. wall texture. Ok, now pick a switch texture (like ZASWIT12) and you'll be 
  489. all set. Oh, make sure you look at what line # the switch is on. It will
  490. tell you that in the blue box in the left hand cornor of the screen where
  491. it says "REL: # of 6".  Remember the first #, as we will need it for the .inf
  492. file.
  493.  
  494. *Note* You must have a switch texture on the wall for the switch to work!
  495.  
  496. Ok, save your level and now we're ready to add another item to the .inf.
  497. Here's the item you would add to make the switch (don't forget to update
  498. the "items" line!!!!):
  499.  
  500. item: line      name: start_point    num: (whatever number your line is)
  501. seq
  502. class: trigger switch1
  503. event_mask: 16
  504. client: lift
  505. seqend
  506.  
  507.  
  508. And of course here's our line by line description:
  509.  
  510. "item: line"
  511. You use line here because the switch is on a line.
  512.  
  513. "name: start_point"
  514. This is the name of sector that the line is in.
  515.  
  516. "num:"
  517. This is the number of the line. You can find out what number a line is by
  518. looking at the left blue box where it says "REL: # of #" in line mode. The
  519. first number is the one you'd use.
  520.  
  521. "seq"
  522. This marks the start of the sequence of commands.
  523.  
  524. "class: trigger switch1"
  525. This is the class you use for a normal switch. Here is the list of the
  526. other line classes:
  527.  
  528. INF LINE CLASSES
  529.  
  530. trigger
  531. trigger single   [a trigger used once]
  532. trigger switch1   [used for making switches]
  533. trigger standard  [standard trigger]
  534. trigger toggle   [used for switches that toggle on and off]
  535.  
  536.  
  537. "event_mask: 16"
  538. makes the switch activate when you push (nudge) it.
  539.  
  540. "client: lift"
  541. This tells the switch what sector it will trigger. Putting "client: lift"
  542. makes the switch so that when you push it sector 'lift' will go to it's 
  543. next stop.
  544.  
  545. "seqend"
  546. The end of the sequence.
  547.  
  548.  
  549. We still aren't done making the switch.  Now we have to edit the item in the
  550. .inf that makes the lift and add some stuff to it (obviously you don't type
  551. in "*****NEW LINE*****" after the new lines):
  552.  
  553. item: sector             name: lift   
  554. seq
  555. class: elevator move_floor
  556. event_mask: 52
  557. stop: 0 0       ********NEW LINE***********
  558. stop: 0 hold
  559. message: 1 start_point(#) done     ********NEW LINE*******
  560. stop: 16 hold
  561. message: 2 start_point(#) done  ******NEW LINE********
  562. speed: 10
  563. seqend
  564.  
  565. Here is an explaination of the new lines we added in:
  566.  
  567. "stop: 0 0"
  568. This line doesn't do anything, but we put it here because for some reason
  569. you can't send messages from stop 0. Remember this!!!! I'll say it again...
  570. YOU CANNOT SEND MESSAGES FROM STOP 0!!!!!
  571.  
  572. "message: 1 start_point(#) done"
  573. Messages are sent from stops, and they are sent when the sector ARRIVES at
  574. the stop.  The "1" means that the message is being sent from stop 1,
  575. "start_point" is what sector that the line we want to send the message to is 
  576. in, "(#)" is the number of the line you want to send the message to (since 
  577. we are sending the message to a line). Make sure you fill in the "()" with 
  578. the correct number! "done" is the actual message we are sending -- it tells 
  579. the switch that the lift is done which makes the switch ready to be pressed
  580. again.
  581.  
  582. "message: 2 start_point(#) done"
  583. This is the same as the other message, except that this one is being sent
  584. form stop 2, thus the "2". If we didn't put these messages in, then
  585. after you pushed the switch once, it wouldn't let you press it again because
  586. it would think that the lift was not done yet. 
  587.  
  588. And that's all! You now have made a switch that activates the lift. Go 
  589. back into LEVMAP, and you'll see that the line you made a switch is now
  590. light blue and it says "TRIG: switch1 client: lift".  
  591.  
  592. However, the sign texture of the switch is on the bottom of the wall, so we'll
  593. want to move it up a little so you don't have to duck down to press it.
  594. To do this, change the "Y:" of the sign texture to "-4". A negative number
  595. moves it up, and a positive number moves it down, so we moved it up 4. This
  596. should put the switch at a height were the player would be able to 
  597. press it.  Now load up DF and try it out!
  598.  
  599. ===========
  600. Key Doors
  601. ===========
  602. Many people have e-mailed us asking how to make doors that open with keys, 
  603. so here you go!
  604.  
  605. To make a key door, you have to manually make a door in the .inf instead
  606. of setting the "door" flag.  DO NOT set the "door" flag on the key door or
  607. it will not work properly!
  608.  
  609. *NOTE* The following is for key doors ONLY. If you want to make a regular
  610. door all you have to do is set the "door" flag (See Part 1 of the tutorial).
  611.  
  612. Here's the situation: You want to make a red key door between 2 sectors
  613. like this:
  614.  
  615. ____________       ___________
  616. |            |     |           |
  617. |  FAl: 0    |_____|  FAl: 0   |
  618. |  CAl: 16   |     |  CAl: 16  |            Diagram 2-9
  619. |            |_____|           |
  620. |            |     |           |
  621. |____________|     |___________|
  622. /\
  623. 'red_door'
  624. FAl: 0
  625. CAl: 0
  626.  
  627. The Ceiling Altitude of 'red_door' would be 0 because we want the door to
  628. start out closed (on the ground). To make the door open, we will move
  629. the ceiling up. Remember, You do not have to do this if you are making a 
  630. regular door with the "door" flag.
  631.  
  632. Here's what you'd put in the .inf:
  633.  
  634. item: sector     name: red_door         
  635. seq
  636. class: elevator move_ceiling
  637. event_mask: 32
  638. speed: 30
  639. key: red
  640. stop: 0 hold
  641. stop: 16 5
  642. seqend
  643.  
  644. Here's a description of the lines you might not understand:
  645.  
  646.  
  647. "class: elevator move_ceiling"
  648. We use this class becuse we want to move the ceiling up and down, thus
  649. simulating a door.
  650.  
  651. "event_mask: 32"
  652. This make the door activate when you push on it.
  653.  
  654. "key: red" 
  655. This line is what makes the door need a red key.  Putting "key: blue" would 
  656. make it need a blue key, and so on.
  657.  
  658. "stop: 0 hold "
  659. Makes the door hold until pressed on.
  660.  
  661. "stop: 16 5"
  662. This makes the ceiling height go up to 16 (opening the door), pause
  663. for 5 seconds, then go to the next stop which makes it go back down to
  664. the floor (closing the door) and hold there until pressed again.
  665.  
  666. There you go! Just make sure you don't forget to put a red key in the room!
  667.  
  668. ========
  669. Layers
  670. ========
  671. If you've edited any of LucasArt's levels, you will see that some of the level
  672. is gray instead of green. This is because some of the sectors are on different
  673. layers. You can cycle up through the layers using Page Up, and down using Page
  674. Down.  When you make a new level, the starting sectors are on layer 0. To
  675. change what layer a sector is on, simply edit the sector and change "LAY:".
  676. Changing it to 1 would put the sector on the layer above 0, and -1 would be
  677. below.  
  678.  
  679. =====================
  680. 2 Ways to Test Levels
  681. =====================
  682. There are 2 different ways to test your level.  I will tell you about them
  683. both, and you can pick the one you like best.
  684.  
  685. 1. Make it a .GOB ---- This is probably the most popular method of testing
  686. a level. To do this push "T" (Test Level) from the 
  687. DFUSE menu. This will copy your level files, plus
  688. all the files you have in the textures, sounds,
  689. and graphics directories, and put them all in a .GOB
  690. files called TESTLEVL.GOB on the c:\dark directory.  
  691. It will then load the .GOB and you can test out your
  692. level. When your done making your level, all you have
  693. to do is rename TESTLEVL.GOB whatever you want to and
  694. distribute it. The advantage to this method is that
  695. you can still play the LA level that your level
  696. replaces because your level is in a .GOB.
  697.  
  698. 2. Copy the Files ---- This is the way I told you how to test your level in 
  699. the last tutorial: Just copy the 6 files that make up 
  700. your level to the c:\dark directory. You can also make
  701. DFUSE do this for you instead of putting your level in 
  702. a .GOB by editing the DFUSE.INI file. The advantage to 
  703. this method is that it won't copy unwanted graphics
  704. or sound from the other directories like the above 
  705. method. The disadvantage is that say your level
  706. replaces secbase and you copy the files to c:\dark -
  707. you won't be able to play LA's secbase level unless
  708. you delete yours.
  709.  
  710. ===============
  711. Helpful Hints
  712. ===============
  713. Here's some helpful hints for using DFUSE:
  714.  
  715. * If it takes to long to load up your level, I suggest you edit the DFUSE.INI
  716. file and turn "Object Layering" off.  This will cut down the load time of
  717. your level in half! (but you won't be able to tell what layer objects are
  718. on)
  719.  
  720. * If your level crashes when you try to load it, chances are very good that
  721. there is something wrong with the player start object. Make sure it exists,
  722. that its inside a sector, and that its not above the ceiling or below
  723. the floor.
  724.  
  725. * Pushing <Alt + S> will turn "shadowing" off - that is, it will not show
  726. other layers in gray, but it will only show the current layer in green.
  727. This is useful if you are editing LucasArt's levels or if your level is
  728. really large.
  729.  
  730. * If you want to learn how to do something that isn't in the tutorials, I
  731. suggest you edit LA's levels and see how they do it. That's how we learned!
  732.  
  733. Well, that's all for this tutorial!  Don't worry, though, Part 3 will be
  734. coming....
  735.  
  736. Part 3 of our tutorial will have LOTS more .inf stuff!  E-mail us and tell
  737. us what you'd like to see in Part 3.
  738.  
  739. FEEDBACK !!!!! ----
  740. That is one thing we need LOTS of!  In order to be able to improve our
  741. tutorials and make them what you want them to be, you NEED TO TELL US WHAT
  742. YOU THINK!!! PLEASE send us e-mail with any questions, comments, complaints,
  743. etc. you have. If you don't understand something in this tutorial, you can
  744. e-mail us and we'll try to help. Here's our E-Mail addresses:
  745.  
  746. On Compuserve:  74454,1421
  747. From the Internet or any other On-Line service:  74454.1421@compuserve.com
  748.  
  749. Don't Forget to send us FEEDBACK!  See you next tutorial!
  750.  
  751. Ben & Pat McBride
  752.  
  753. *=== COMING SOON ====*        
  754. Look for our Rebel Base Invasion level, coming soon to a forum / ftp site
  755. near you!
  756.  
  757.  
  758. P.S.  If you are on any other online services (besides Compuserve), please
  759. upload this file there so it can be widely distributed. Thanks.
  760.  
  761.